#include<iostream>
using namespace std;

//void test1()
//{
//	int a = 10;
//	int& b = a;
//	printf("%p\n", &a);
//	printf("%p", &b);
//}
//
//void test2()
//{
//	int c = 5;
//	int& d = c;
//	int& f = d;
//	cout << &c << endl << &d << endl << &f;
//}
//
//int main()
//{
//	test2();
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	int& ra = a;
//	ra = 20;
//	int* pa = &a;
//	*pa = 20;
//	return 0;
//}

//int test3()
//{
//	return 10;
//}
//
//int main()
//{
//	/*int a = 10;
//	auto b = a;
//	auto c = 'a';
//	auto d = test3();*/
//
//	int x = 10;
//	auto a = &x;
//	auto* b = &x;
//	auto& c = x;
//
//	cout << typeid(b).name() << endl;
//	cout << typeid(c).name() << endl;
//	cout << typeid(a).name() << endl;
//
//	*a = 20;
//	*b = 30;
//	c = 40;
//	
//	return 0;
//}

//void test4()
//{
//	int a[] = { 1,2,3,4 };
//	for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
//	{
//		a[i] *= 2;
//	}
//
//	for (int* p = a; p < a + sizeof(a) / sizeof(a[0]); p++)
//	{
//		cout << *p << endl;
//	}
//}
//
//void test5()
//{
//	int arr[] = { 2,3,4,5 };
//	for (auto& e : arr)
//	{
//		e *= 2;
//	}
//	for (auto e : arr)
//	{
//		cout << e << " ";
//	}
//}
//
//int main()
//{
//	test5();
//	return 0;
//}

//typedef int DataType;
//struct Stack
//{
//	void Init(size_t capacity)
//	{
//		_array = (DataType*)malloc(sizeof(DataType) * capacity);
//		if (nullptr == _array)
//		{
//			perror("malloc erro");
//			return;
//		}
//		_capacity = capacity;
//		_size = 0;
//	}
//
//	void Push(const DataType& data)
//	{
//		//extend
//		_array[_size] = data;
//		++_size;
//	}
//
//	DataType Top()
//	{
//		return _array[_size - 1];
//	}
//
//	void Destroy()
//	{
//		if (_array)
//		{
//			free(_array);
//			_array = nullptr;
//			_capacity = 0;
//			_size = 0;
//		}
//	}
//	DataType* _array;
//	size_t _capacity;
//	size_t _size;
//};
//
//int main()
//{
//	Stack s;
//	s.Init(10);
//	s.Push(1);
//	s.Push(2);
//	s.Push(3);
//	cout << s.Top() << endl;
//	s.Destroy();
//
//	return 0;
//}

//class student
//{
//public:
//	char _name;
//	char _id;
//	int _age;
//public:
//	void Init()
//	{
//		cout << _name << _id << _age << endl;
//	}
//private:
//	char* _name;
//	char* _id;
//	int _age;
//};

//void test6()
//{
//	student s1;
//	s1._name = 'w';
//	s1._id = 'q';
//	s1._age = 5;
//	s1.Init();
//}
//
//int main()
//{
//	test6();
//	return 0;
//}

class A1
{
public:
	void f1()
	{}
private:
	int _a;
};

class A2
{
public:
	void f2()
	{}
};

class A3
{

};

int main()
{
	cout << sizeof(A1) << endl;
	cout << sizeof(A2) << endl;
	cout << sizeof(A3) << endl;

	return 0;
}